home *** CD-ROM | disk | FTP | other *** search
/ Ian & Stuart's Australian Mac 1993 September / September 93.iso / Archives / Applications / Graphics / Draw / ArtBeat / ArtBeat Professional 1.0 Demo / ArtBeat Professional 1.0 Demo.rsrc / ABPS_303_Dict ill 3 < prev    next >
Encoding:
Text File  |  1992-12-08  |  20.0 KB  |  1,290 lines

  1. %%BeginProlog
  2. %%BeginResource: procset Adobe_packedarray 2.0 0
  3. %%Title: (Packed Array Operators)
  4. %%Version: 2.0 
  5. %%CreationDate: (8/2/90) ()
  6. %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
  7. userdict /Adobe_packedarray 5 dict dup begin put
  8. /initialize            % - initialize -
  9. {
  10. /packedarray where
  11.     {
  12.     pop
  13.     }
  14.     {
  15.     Adobe_packedarray begin
  16.     Adobe_packedarray
  17.         {
  18.         dup xcheck
  19.             {
  20.             bind
  21.             } if
  22.         userdict 3 1 roll put
  23.         } forall
  24.     end
  25.     } ifelse
  26. } def
  27. /terminate            % - terminate -
  28. {
  29. } def
  30. /packedarray        % arguments count packedarray array
  31. {
  32. array astore readonly
  33. } def
  34. /setpacking            % boolean setpacking -
  35. {
  36. pop
  37. } def
  38. /currentpacking        % - setpacking boolean
  39. {
  40. false
  41. } def
  42. currentdict readonly pop end
  43. %%EndResource
  44. Adobe_packedarray /initialize get exec
  45. %%BeginResource: procset Adobe_cmykcolor 1.1 0
  46. %%Title: (CMYK Color Operators)
  47. %%Version: 1.1 
  48. %%CreationDate: (1/23/89) ()
  49. %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
  50. currentpacking true setpacking
  51. userdict /Adobe_cmykcolor 4 dict dup begin put
  52. /initialize            % - initialize -
  53. {
  54. /setcmykcolor where
  55.     {
  56.     pop
  57.     }
  58.     {
  59.     userdict /Adobe_cmykcolor_vars 2 dict dup begin put
  60.     /_setrgbcolor
  61.         /setrgbcolor load def
  62.     /_currentrgbcolor
  63.         /currentrgbcolor load def
  64.     Adobe_cmykcolor begin
  65.     Adobe_cmykcolor
  66.         {
  67.         dup xcheck
  68.             {
  69.             bind
  70.             } if
  71.         pop pop
  72.         } forall
  73.     end
  74.     end
  75.     Adobe_cmykcolor begin
  76.     } ifelse
  77. } def
  78. /terminate            % - terminate -
  79. {
  80. currentdict Adobe_cmykcolor eq
  81.     {
  82.     end
  83.     } if
  84. } def
  85. /setcmykcolor        % cyan magenta yellow black setcmykcolor -
  86. {
  87. 1 sub 4 1 roll
  88. 3
  89.     {
  90.     3 index add neg dup 0 lt
  91.         {
  92.         pop 0
  93.         } if
  94.     3 1 roll
  95.     } repeat
  96. Adobe_cmykcolor_vars /_setrgbcolor get exec
  97. pop
  98. } def 
  99. /currentcmykcolor    % - currentcmykcolor cyan magenta yellow black
  100. {
  101. Adobe_cmykcolor_vars /_currentrgbcolor get exec
  102. 3
  103.     {
  104.     1 sub neg 3 1 roll
  105.     } repeat
  106. 0
  107. } def
  108. currentdict readonly pop end
  109. setpacking
  110. %%EndResource
  111. %%BeginResource: procset Adobe_cshow 1.1 0
  112. %%Title: (cshow Operator)
  113. %%Version: 1.1 
  114. %%CreationDate: (1/23/89) ()
  115. %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
  116. currentpacking true setpacking
  117. userdict /Adobe_cshow 3 dict dup begin put
  118. /initialize            % - initialize -
  119. {
  120. /cshow where
  121.     {
  122.     pop
  123.     }
  124.     {
  125.     userdict /Adobe_cshow_vars 1 dict dup begin put
  126.     /_cshow        % - _cshow proc
  127.         {} def
  128.     Adobe_cshow begin
  129.     Adobe_cshow
  130.         {
  131.         dup xcheck
  132.             {
  133.             bind
  134.             } if
  135.         userdict 3 1 roll put
  136.         } forall
  137.     end
  138.     end
  139.     } ifelse
  140. } def
  141. /terminate            % - terminate -
  142. {
  143. } def
  144. /cshow                % proc string cshow -
  145. {
  146. exch
  147. Adobe_cshow_vars
  148.     exch /_cshow
  149.     exch put
  150.     {
  151.     0 0 Adobe_cshow_vars /_cshow get exec
  152.     } forall
  153. } def
  154. currentdict readonly pop end
  155. setpacking
  156. %%EndResource
  157. %%BeginResource: procset Adobe_customcolor 1.0 0
  158. %%Title: (Custom Color Operators)
  159. %%Version: 1.0 
  160. %%CreationDate: (5/9/88) ()
  161. %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
  162. currentpacking true setpacking
  163. userdict /Adobe_customcolor 5 dict dup begin put
  164. /initialize            % - initialize -
  165. {
  166. /setcustomcolor where
  167.     {
  168.     pop
  169.     }
  170.     {
  171.     Adobe_customcolor begin
  172.     Adobe_customcolor
  173.         {
  174.         dup xcheck
  175.             {
  176.             bind
  177.             } if
  178.         pop pop
  179.         } forall
  180.     end
  181.     Adobe_customcolor begin
  182.     } ifelse
  183. } def
  184. /terminate            % - terminate -
  185. {
  186. currentdict Adobe_customcolor eq
  187.     {
  188.     end
  189.     } if
  190. } def
  191. /findcmykcustomcolor    % cyan magenta yellow black name findcmykcustomcolor object
  192. {
  193. 5 packedarray
  194. }  def
  195. /setcustomcolor        % object tint setcustomcolor -
  196. {
  197. exch
  198. aload pop pop
  199. 4
  200.     {
  201.     4 index mul 4 1 roll
  202.     } repeat
  203. 5 -1 roll pop
  204. setcmykcolor
  205. } def
  206. /setoverprint        % boolean setoverprint -
  207. {
  208. pop
  209. } def
  210. currentdict readonly pop end
  211. setpacking
  212. %%EndResource
  213. %%BeginResource: procset Adobe_typography_AI3 1.1 0
  214. %%Title: (Typography Operators)
  215. %%Version: 1.0 
  216. %%CreationDate:(5/31/90) ()
  217. %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
  218. currentpacking true setpacking
  219. userdict /Adobe_typography_AI3 47 dict dup begin put
  220. /initialize            % - initialize -
  221. {
  222. /TZ
  223.  where
  224.     {
  225.     pop
  226.     }
  227.     {
  228.     Adobe_typography_AI3 begin
  229.     Adobe_typography_AI3
  230.         {
  231.         dup xcheck
  232.             {
  233.             bind
  234.             } if
  235.         pop pop
  236.         } forall
  237.     end
  238.     Adobe_typography_AI3 begin
  239.     } ifelse
  240. } def
  241. /terminate            % - terminate -
  242. {
  243. currentdict Adobe_typography_AI3 eq
  244.     {
  245.     end
  246.     } if
  247. } def
  248. % [ number value stream [ array for encoding modification ] modifyEncoding ==> [ modified array ]
  249. /modifyEncoding
  250. {
  251.     /_tempEncode exch ddef
  252.     
  253.     % pointer for sequential encodings
  254.     /_pntr 0 ddef
  255.     
  256.     {
  257.         % get bottom object
  258.         counttomark -1 roll
  259.         % is it a mark ?
  260.         dup type dup /marktype eq         
  261.         {
  262.             % exit
  263.             pop pop exit
  264.         }
  265.         {
  266.             % ... object ... type ....
  267.             % insert if a nametype
  268.             /nametype eq
  269.             {
  270.                 % insert the name at _pntr and increment pointer
  271.                 _tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
  272.                 put
  273.             }
  274.             {
  275.                 % reset _pntr if it's a number
  276.                 /_pntr exch ddef                    
  277.             }
  278.             ifelse
  279.         }
  280.         ifelse
  281.     }
  282.     loop    
  283.     
  284.     % return the modified encoding
  285.     _tempEncode
  286. }
  287. def
  288. /TE    % Set std platform encoding     % (encoding pairs) TE -
  289. {
  290.     StandardEncoding 256 array copy modifyEncoding 
  291.     /_nativeEncoding exch def
  292. } def
  293. % re-define font
  294. % expected arguments
  295. % for 'normal fonts : 
  296. % [ /_Helvetica-Bold/Helvetica-Bold direction fontScript defaultEncoding TZ
  297. %
  298. % for cartographic, pictographic, and expert fonts :
  299. % [ ... number value stream ... /_Symbol/Symbol 
  300. %    direction fontScript defaultEncoding TZ
  301. % for blended fonts w/ default encoding :
  302. % [ /_AdobeSans_20ULig1XCond-Bold/AdobeSans 
  303. %    direction fontScript defaultEncoding [ w0 w1 ... wn ] TZ
  304. % for blended fonts w/ special encoding :
  305. % [ ... number value stream ... /_AdobeSans_20ULig1XCond/AdobeSans 
  306. %    direction fontScript defaultEncoding [ w0 w1 ... wn ] TZ
  307. /TZ        
  308. {
  309.     % set weight vector (if present)
  310.     dup type /arraytype eq {/_wv exch def} {/_wv 0 def} ifelse 
  311.     % platform dependent coding flag
  312.     /_useNativeEncoding exch def
  313.     % pop fontScript & direction
  314.     pop pop
  315.     
  316.     % create a new dictionary with length
  317.     % equal to original dictionary length + 2
  318.     % copy all the key/value pairs except FID
  319.     % call makeblended font with the weight values if _wv is an array
  320.     findfont _wv type /arraytype eq {_wv makeblendedfont} if dup length 2 add dict
  321.     
  322.     begin
  323.     
  324.         % copy all the values but the FID
  325.         % into the new dictionary
  326.         mark exch
  327.         {
  328.             1 index /FID ne { def } if cleartomark mark
  329.         }
  330.         forall
  331.         % discard last mark
  332.         pop
  333.         
  334.         % define FontName
  335.         /FontName exch def
  336.         
  337.         % if no re-encoding stream is present
  338.         % then if the base encoding vector of the font
  339.         % is the same as StandardEncoding
  340.         % and the use platform encoding flag is true
  341.         % then install AI platform encoding
  342.         % else leave the base encoding in effect
  343.         counttomark 0 eq
  344.         {
  345.             1 _useNativeEncoding eq
  346.             {
  347.                 /Encoding _nativeEncoding def
  348.             }
  349.             if
  350.             % clean up
  351.             cleartomark
  352.         }
  353.         {    
  354.             % custom encoding to be done
  355.             % start off with a copy of the font's standard encoding
  356.             /Encoding load 256 array copy 
  357.             modifyEncoding /Encoding exch def
  358.         }
  359.         ifelse        
  360.         FontName currentdict
  361.     end
  362.     
  363.     % register the new font
  364.     definefont pop
  365. }
  366. def
  367. % text painting operators
  368. /tr                    % string tr ax ay string 
  369. {
  370. _ax _ay 3 2 roll
  371. } def
  372. /trj                % string trj cx cy fillchar ax ay string 
  373. {
  374. _cx _cy _sp _ax _ay 6 5 roll
  375. } def
  376. /a0
  377. {
  378. /Tx    % text                            % textString Tx -
  379.     {
  380.     dup 
  381.     currentpoint 3 2 roll
  382.     tr _psf
  383.     newpath moveto
  384.     tr _ctm _pss
  385.     } ddef
  386. /Tj    % justified text                % textString Tj -
  387.     {
  388.     dup
  389.     currentpoint 3 2 roll
  390.     trj _pjsf
  391.     newpath moveto
  392.     trj _ctm _pjss
  393.     } ddef
  394.     
  395. } def
  396. /a1
  397. {
  398. /Tx    % text                            % textString Tx -
  399.     {
  400.     dup currentpoint 4 2 roll gsave
  401.     dup currentpoint 3 2 roll
  402.     tr _psf
  403.     newpath moveto
  404.     tr _ctm _pss
  405.     grestore 3 1 roll moveto tr sp
  406.     } ddef
  407. /Tj    % justified text                % textString Tj -
  408.     {
  409.     dup currentpoint 4 2 roll gsave
  410.     dup currentpoint 3 2 roll
  411.     trj _pjsf
  412.     newpath moveto
  413.     trj _ctm _pjss
  414.     grestore 3 1 roll moveto tr sp
  415.     } ddef
  416.     
  417. } def
  418. /e0
  419. {
  420. /Tx    % text                            % textString Tx -
  421.     {
  422.     tr _psf
  423.     } ddef
  424. /Tj    % justified text                % textString Tj -
  425.     {
  426.     trj _pjsf
  427.     } ddef
  428. } def
  429. /e1
  430. {
  431. /Tx    % text                            % textString Tx -
  432.     {
  433.     dup currentpoint 4 2 roll gsave 
  434.     tr _psf  
  435.     grestore 3 1 roll moveto tr sp 
  436.     } ddef
  437. /Tj    % justified text                % textString Tj -
  438.     {
  439.     dup currentpoint 4 2 roll gsave 
  440.     trj _pjsf
  441.     grestore 3 1 roll moveto tr sp 
  442.     } ddef
  443. } def
  444. /i0
  445. {
  446. /Tx    % text                            % textString Tx -
  447.     {
  448.     tr sp
  449.     } ddef
  450. /Tj    % justified text                % textString Tj -
  451.     {
  452.     trj jsp
  453.     } ddef
  454. } def
  455. /i1
  456. {
  457. W N
  458. } def
  459. /o0
  460. {
  461. /Tx    % text                            % textString Tx -
  462.     {
  463.     tr sw rmoveto
  464.     } ddef
  465. /Tj    % justified text                % textString Tj -
  466.     {
  467.     trj swj rmoveto
  468.     } ddef
  469. } def
  470. /r0
  471. {
  472. /Tx    % text                            % textString Tx -
  473.     {
  474.     tr _ctm _pss
  475.     } ddef
  476. /Tj    % justified text                % textString Tj -
  477.     {
  478.     trj _ctm _pjss
  479.     } ddef
  480. } def
  481. /r1
  482. {
  483. /Tx    % text                            % textString Tx -
  484.     {
  485.     dup currentpoint 4 2 roll currentpoint gsave newpath moveto
  486.     tr _ctm _pss 
  487.     grestore 3 1 roll moveto tr sp 
  488.     } ddef
  489. /Tj    % justified text                % textString Tj -
  490.     {
  491.     dup currentpoint 4 2 roll currentpoint gsave newpath moveto
  492.     trj _ctm _pjss
  493.     grestore 3 1 roll moveto tr sp 
  494.     } ddef
  495. } def
  496. % font operators
  497. % Binding
  498. /To    % begin text                     % bindType To -
  499. {
  500.     pop _ctm currentmatrix pop
  501. } def
  502. /TO    % end text                    % TO -
  503. {
  504.     Te _ctm setmatrix newpath
  505. } def
  506. % Text paths
  507. /Tp    % begin text path                % a b c d tx ty startPt Tp -
  508. {
  509.     pop _tm astore pop _ctm setmatrix 
  510.     _tDict begin /W {} def /h {} def
  511. } def
  512. /TP    % end text path                    % TP -
  513. {
  514.     end
  515.     iTm 0 0 moveto
  516. } def
  517. % Render mode & matrix operators
  518. /Tr    % begin render                    % render Tr - 
  519. {
  520.     _render 3 le {currentpoint newpath moveto} if
  521.     dup 8 eq {pop 0} {dup 9 eq {pop 1} if} ifelse
  522.     dup /_render exch ddef
  523.     _renderStart exch get load exec
  524. } def
  525. /iTm % internal set text matrix        % - iTm -    (uses _tm as implicit argument)
  526. {
  527. _ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
  528. } def
  529. /Tm % set text matrix                % a b c d tx ty Tm -
  530. {
  531. _tm astore pop iTm 0 0 moveto
  532. } def
  533. /Td % translate text matrix         % tx ty Td -
  534. {
  535. _mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
  536. } def
  537. /Te    % end render                    % - Te -
  538. {
  539.     _render -1 eq {} {_renderEnd _render get dup null ne {load exec} {pop} ifelse} ifelse
  540.     /_render -1 ddef
  541. } def
  542. % Attributes
  543. /Ta    % set alignment                    % alignment Ta -
  544. {
  545. pop
  546. } def
  547. /Tf    % set font name and size        % fontname size Tf -
  548. {
  549. dup 1000 div /_fScl exch ddef
  550. exch findfont exch scalefont setfont
  551. } def
  552. /Tl    % set leading                    % leading paragraphLeading Tl -
  553. {
  554. pop
  555. 0 exch _leading astore pop
  556. } def
  557. /Tt    % set user tracking                % userTracking Tt -
  558. {
  559. pop
  560. } def
  561. /TW % set word spacing                % minSpace optSpace maxSpace TW -
  562. {
  563. 3 npop
  564. } def
  565. /Tw    % set computed word spacing        % wordSpace Tw
  566. {
  567. /_cx exch ddef
  568. } def
  569. /TC % set character spacing            % minSpace optSpace maxSpace TC -
  570. {
  571. 3 npop
  572. } def
  573. /Tc    % set computed char spacing     % charSpace Tc -
  574. {
  575. /_ax exch ddef
  576. } def
  577. /Ts % set super/subscripting (rise)    % rise Ts -
  578. {
  579. /_rise exch ddef
  580. currentpoint
  581. iTm
  582. moveto
  583. } def
  584. /Ti    % set indentation                % firstStartIndent otherStartIndent stopIndent Ti -
  585. {
  586. 3 npop
  587. } def
  588. /Tz % set horizontal scaling        % scalePercent Tz -
  589. {
  590. 100 div /_hs exch ddef
  591. iTm
  592. } def
  593. /TA % set pairwise kerning            % autoKern TA -
  594.                                     %    autoKern = 0 -> no pair kerning
  595.                                     %             = 1 -> automatic pair kerning
  596. {
  597. pop
  598. } def
  599. /Tq % set hanging quotes            % hangingQuotes Tq -
  600.                                     %    hangingQuotes     = 0 -> no hanging quotes
  601.                                     %                     = 1 -> hanging quotes
  602. {
  603. pop
  604. } def
  605. % Text Bodies
  606. /TX {pop} def
  607. %/Tx    % non-justified text            % textString Tx -
  608. %/Tj    % justified text                % textString Tj -
  609. /Tk    % kern                            % autoKern kernValue Tk -
  610.                                     %      autoKern = 0 -> manual kern, = 1 -> auto kern
  611.                                     %    kernValue = kern value in em/1000 space
  612. {
  613. exch pop _fScl mul neg 0 rmoveto
  614. } def
  615. /TK    % non-printing kern                % autoKern kernValue TK -
  616. {
  617. 2 npop
  618. } def
  619. /T* % carriage return & line feed    % - T* -
  620. {
  621. _leading aload pop neg Td
  622. } def
  623. /T*- % carriage return & negative line feed    % - T*- -
  624. {
  625. _leading aload pop Td
  626. } def
  627. /T-    % print a discretionary hyphen    % - T- -
  628. {
  629. _hyphen Tx
  630. } def
  631. /T+    % discretionary hyphen hyphen    % - T+ -
  632. {} def
  633. /TR    % reset pattern matrix             % a b c d tx ty TR -
  634. {
  635. _ctm currentmatrix pop     
  636. _tm astore pop 
  637. iTm 0 0 moveto 
  638. } def
  639. /TS    % special chars                    % textString justified TS -
  640. {
  641. 0 eq {Tx} {Tj} ifelse
  642. } def
  643. currentdict readonly pop end
  644. setpacking
  645. %%EndResource
  646. %%BeginResource: procset Adobe_IllustratorA_AI3 1.0 2
  647. %%Title: (Adobe Illustrator (R) Version 3.0 Abbreviated Prolog)
  648. %%Version: 1.0 
  649. %%CreationDate: (7/22/89) ()
  650. %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved)
  651. currentpacking true setpacking
  652. userdict /Adobe_IllustratorA_AI3 61 dict dup begin put
  653. % initialization
  654. /initialize                % - initialize -
  655. {
  656. % 47 vars, but leave slack of 10 entries for custom Postscript fragments
  657. userdict /Adobe_IllustratorA_AI3_vars 57 dict dup begin put
  658. % paint operands
  659. /_lp /none def
  660. /_pf {} def
  661. /_ps {} def
  662. /_psf {} def
  663. /_pss {} def
  664. /_pjsf {} def
  665. /_pjss {} def
  666. /_pola 0 def
  667. /_doClip 0 def
  668. % paint operators
  669. /cf    currentflat def    % - cf flatness
  670. % typography operands
  671. /_tm matrix def
  672. /_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def 
  673. /_renderEnd [null null null null /i1 /i1 /i1 /i1] def
  674. /_render -1 def
  675. /_rise 0 def
  676. /_ax 0 def            % x character spacing    (_ax, _ay, _cx, _cy follows awidthshow naming convention)
  677. /_ay 0 def            % y character spacing
  678. /_cx 0 def            % x word spacing
  679. /_cy 0 def            % y word spacing
  680. /_leading [0 0] def
  681. /_ctm matrix def
  682. /_mtx matrix def
  683. /_sp 16#020 def
  684. /_hyphen (-) def
  685. /_fScl 0 def
  686. /_cnt 0 def
  687. /_hs 1 def
  688. /_nativeEncoding 0 def
  689. /_useNativeEncoding 0 def
  690. /_tempEncode 0 def
  691. /_pntr 0 def
  692. /_tDict 2 dict def
  693. % typography operators
  694. /Tx {} def
  695. /Tj {} def
  696. % compound path operators
  697. /CRender {} def
  698. % printing
  699. /_AI3_savepage {} def
  700. % color operands
  701. /_gf null def
  702. /_cf 4 array def
  703. /_if null def
  704. /_of false def
  705. /_fc {} def
  706. /_gs null def
  707. /_cs 4 array def
  708. /_is null def
  709. /_os false def
  710. /_sc {} def
  711. /_i null def
  712. Adobe_IllustratorA_AI3 begin
  713. Adobe_IllustratorA_AI3
  714.     {
  715.     dup xcheck
  716.         {
  717.         bind
  718.         } if
  719.     pop pop
  720.     } forall
  721. end
  722. end
  723. Adobe_IllustratorA_AI3 begin
  724. Adobe_IllustratorA_AI3_vars begin
  725. newpath
  726. } def
  727. /terminate                % - terminate -
  728. {
  729. end
  730. end
  731. } def
  732. % definition operators
  733. /_                    % - _ null
  734. null def
  735. /ddef                % key value ddef -
  736. {
  737. Adobe_IllustratorA_AI3_vars 3 1 roll put
  738. } def
  739. /xput                % key value literal xput -
  740. {
  741. dup load dup length exch maxlength eq
  742.     {
  743.     dup dup load dup
  744.     length 2 mul dict copy def
  745.     } if
  746. load begin def end
  747. } def
  748. /npop                % integer npop -
  749. {
  750.     {
  751.     pop
  752.     } repeat
  753. } def
  754. % marking operators
  755. /sw                    % ax ay string sw x y 
  756. {
  757. dup length exch stringwidth
  758. exch 5 -1 roll 3 index 1 sub mul add
  759. 4 1 roll 3 1 roll 1 sub mul add
  760. } def
  761. /swj                % cx cy fillchar ax ay string swj x y
  762. {
  763. dup 4 1 roll
  764. dup length exch stringwidth 
  765. exch 5 -1 roll 3 index 1 sub mul add
  766. 4 1 roll 3 1 roll 1 sub mul add 
  767. 6 2 roll /_cnt 0 ddef
  768. {1 index eq {/_cnt _cnt 1 add ddef} if} forall pop
  769. exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
  770. } def
  771. /ss                    % ax ay string matrix ss -
  772. {
  773. 4 1 roll
  774.     {                % matrix ax ay char 0 0 {proc} -
  775.     2 npop 
  776.     (0) exch 2 copy 0 exch put pop
  777.     gsave
  778.     false charpath currentpoint
  779.     4 index setmatrix
  780.     stroke
  781.     grestore
  782.     moveto
  783.     2 copy rmoveto
  784.     } exch cshow
  785. 3 npop
  786. } def
  787. /jss                % cx cy fillchar ax ay string matrix jss -
  788. {
  789. 4 1 roll
  790.     {                % cx cy fillchar matrix ax ay char 0 0 {proc} -   
  791.     2 npop 
  792.     (0) exch 2 copy 0 exch put 
  793.     gsave
  794.     _sp eq 
  795.         {
  796.         exch 6 index 6 index 6 index 5 -1 roll widthshow  
  797.         currentpoint
  798.         }
  799.         {
  800.         false charpath currentpoint
  801.         4 index setmatrix stroke
  802.         }ifelse
  803.     grestore
  804.     moveto
  805.     2 copy rmoveto
  806.     } exch cshow
  807. 6 npop
  808. } def
  809. % path operators
  810. /sp                    % ax ay string sp -
  811. {
  812.     {
  813.     2 npop (0) exch
  814.     2 copy 0 exch put pop
  815.     false charpath
  816.     2 copy rmoveto
  817.     } exch cshow
  818. 2 npop
  819. } def
  820. /jsp                    % cx cy fillchar ax ay string jsp -
  821. {
  822.     {                    % cx cy fillchar ax ay char 0 0 {proc} -
  823.     2 npop 
  824.     (0) exch 2 copy 0 exch put 
  825.     _sp eq 
  826.         {
  827.         exch 5 index 5 index 5 index 5 -1 roll widthshow  
  828.         }
  829.         {
  830.         false charpath
  831.         }ifelse
  832.     2 copy rmoveto
  833.     } exch cshow
  834. 5 npop
  835. } def
  836. % path construction operators
  837. /pl                % x y pl x y
  838. {
  839. transform
  840. 0.25 sub round 0.25 add exch
  841. 0.25 sub round 0.25 add exch
  842. itransform
  843. } def
  844. /setstrokeadjust where
  845.     {
  846.     pop true setstrokeadjust
  847.     /c                % x1 y1 x2 y2 x3 y3 c -
  848.     {
  849.     curveto
  850.     } def
  851.     /C
  852.     /c load def
  853.     /v                % x2 y2 x3 y3 v -
  854.     {
  855.     currentpoint 6 2 roll curveto
  856.     } def
  857.     /V
  858.     /v load def
  859.     /y                % x1 y1 x2 y2 y -
  860.     {
  861.     2 copy curveto
  862.     } def
  863.     /Y
  864.     /y load def
  865.     /l                % x y l -
  866.     {
  867.     lineto
  868.     } def
  869.     /L
  870.     /l load def
  871.     /m                % x y m -
  872.     {
  873.     moveto
  874.     } def
  875.     }
  876.     {%else
  877.     /c
  878.     {
  879.     pl curveto
  880.     } def
  881.     /C
  882.     /c load def
  883.     /v
  884.     {
  885.     currentpoint 6 2 roll pl curveto
  886.     } def
  887.     /V
  888.     /v load def
  889.     /y
  890.     {
  891.     pl 2 copy curveto
  892.     } def
  893.     /Y
  894.     /y load def
  895.     /l
  896.     {
  897.     pl lineto
  898.     } def
  899.     /L
  900.     /l load def
  901.     /m
  902.     {
  903.     pl moveto
  904.     } def
  905.     }ifelse
  906. % graphic state operators
  907. /d                    % array phase d -
  908. {
  909. setdash
  910. } def
  911. /cf    {} def            % - cf flatness
  912. /i                    % flatness i -
  913. {
  914. dup 0 eq
  915.     {
  916.     pop cf
  917.     } if
  918. setflat
  919. } def
  920. /j                    % linejoin j -
  921. {
  922. setlinejoin
  923. } def
  924. /J                    % linecap J -
  925. {
  926. setlinecap
  927. } def
  928. /M                    % miterlimit M -
  929. {
  930. setmiterlimit
  931. } def
  932. /w                    % linewidth w -
  933. {
  934. setlinewidth
  935. } def
  936. % path painting operators
  937. /H                    % - H -
  938. {} def
  939. /h                    % - h -
  940. {
  941. closepath
  942. } def
  943. /N                    % - N -
  944. {
  945. _pola 0 eq 
  946.     {
  947.     _doClip 1 eq {clip /_doClip 0 ddef} if 
  948.     newpath
  949.     } 
  950.     {
  951.     /CRender {N} ddef
  952.     }ifelse
  953. } def
  954. /n                    % - n -
  955. {N} def
  956. /F                    % - F -
  957. {
  958. _pola 0 eq 
  959.     {
  960.     _doClip 1 eq 
  961.         {
  962.         gsave _pf grestore clip newpath /_lp /none ddef _fc 
  963.         /_doClip 0 ddef
  964.         }
  965.         {
  966.         _pf
  967.         }ifelse
  968.     } 
  969.     {
  970.     /CRender {F} ddef
  971.     }ifelse
  972. } def
  973. /f                    % - f -
  974. {
  975. closepath
  976. F
  977. } def
  978. /S                    % - S -
  979. {
  980. _pola 0 eq 
  981.     {
  982.     _doClip 1 eq 
  983.         {
  984.         gsave _ps grestore clip newpath /_lp /none ddef _sc 
  985.         /_doClip 0 ddef
  986.         }
  987.         {
  988.         _ps
  989.         }ifelse
  990.     } 
  991.     {
  992.     /CRender {S} ddef
  993.     }ifelse
  994. } def
  995. /s                    % - s -
  996. {
  997. closepath
  998. S
  999. } def
  1000. /B                    % - B -
  1001. {
  1002. _pola 0 eq 
  1003.     {
  1004.     _doClip 1 eq     % F clears _doClip
  1005.     gsave F grestore 
  1006.         {
  1007.         gsave S grestore clip newpath /_lp /none ddef _sc
  1008.         /_doClip 0 ddef
  1009.         } 
  1010.         {
  1011.         S
  1012.         }ifelse
  1013.     }
  1014.     {
  1015.     /CRender {B} ddef
  1016.     }ifelse
  1017. } def
  1018. /b                    % - b -
  1019. {
  1020. closepath
  1021. B
  1022. } def
  1023. /W                    % - W -
  1024. {
  1025. /_doClip 1 ddef
  1026. } def
  1027. /*                    % - [string] * -
  1028. {
  1029. count 0 ne 
  1030.     {
  1031.     dup type (stringtype) eq {pop} if
  1032.     } if 
  1033. _pola 0 eq {newpath} if
  1034. } def
  1035. % group operators
  1036. /u                    % - u -
  1037. {} def
  1038. /U                    % - U -
  1039. {} def
  1040. /q                    % - q -
  1041. {
  1042. _pola 0 eq {gsave} if
  1043. } def
  1044. /Q                    % - Q -
  1045. {
  1046. _pola 0 eq {grestore} if
  1047. } def
  1048. /*u                    % - *u -
  1049. {
  1050. _pola 1 add /_pola exch ddef
  1051. } def
  1052. /*U                    % - *U -
  1053. {
  1054. _pola 1 sub /_pola exch ddef 
  1055. _pola 0 eq {CRender} if
  1056. } def
  1057. /D                    % polarized D -
  1058. {pop} def
  1059. /*w                    % - *w -
  1060. {} def
  1061. /*W                    % - *W -
  1062. {} def
  1063. % place operators
  1064. /`                    % matrix llx lly urx ury string ` -
  1065. {
  1066. /_i save ddef
  1067. 6 1 roll 4 npop
  1068. concat pop
  1069. userdict begin
  1070. /showpage {} def
  1071. 0 setgray
  1072. 0 setlinecap
  1073. 1 setlinewidth
  1074. 0 setlinejoin
  1075. 10 setmiterlimit
  1076. [] 0 setdash
  1077. newpath
  1078. 0 setgray
  1079. false setoverprint
  1080. } def
  1081. /~                    % - ~ -
  1082. {
  1083. end
  1084. _i restore
  1085. } def
  1086. % color operators
  1087. /O                    % flag O -
  1088. {
  1089. 0 ne
  1090. /_of exch ddef
  1091. /_lp /none ddef
  1092. } def
  1093. /R                    % flag R -
  1094. {
  1095. 0 ne
  1096. /_os exch ddef
  1097. /_lp /none ddef
  1098. } def
  1099. /g                    % gray g -
  1100. {
  1101. /_gf exch ddef
  1102. /_fc
  1103. _lp /fill ne
  1104.     {
  1105.     _of setoverprint
  1106.     _gf setgray
  1107.     /_lp /fill ddef
  1108.     } if
  1109. } ddef
  1110. /_pf
  1111. {
  1112. _fc
  1113. fill
  1114. } ddef
  1115. /_psf
  1116. {
  1117. _fc
  1118. ashow
  1119. } ddef
  1120. /_pjsf
  1121. {
  1122. _fc
  1123. awidthshow
  1124. } ddef
  1125. /_lp /none ddef
  1126. } def
  1127. /G                    % gray G -
  1128. {
  1129. /_gs exch ddef
  1130. /_sc
  1131. {
  1132. _lp /stroke ne
  1133.     {
  1134.     _os setoverprint
  1135.     _gs setgray
  1136.     /_lp /stroke ddef
  1137.     } if
  1138. } ddef
  1139. /_ps
  1140. {
  1141. _sc
  1142. stroke
  1143. } ddef
  1144. /_pss
  1145. {
  1146. _sc
  1147. ss
  1148. } ddef
  1149. /_pjss
  1150. {
  1151. _sc
  1152. jss
  1153. } ddef
  1154. /_lp /none ddef
  1155. } def
  1156. /k                    % cyan magenta yellow black k -
  1157. {
  1158. _cf astore pop
  1159. /_fc
  1160. {
  1161. _lp /fill ne
  1162.     {
  1163.     _of setoverprint
  1164.     _cf aload pop setcmykcolor
  1165.     /_lp /fill ddef
  1166.     } if
  1167. } ddef
  1168. /_pf
  1169. {
  1170. _fc
  1171. fill
  1172. } ddef
  1173. /_psf
  1174. {
  1175. _fc
  1176. ashow
  1177. } ddef
  1178. /_pjsf
  1179. {
  1180. _fc
  1181. awidthshow
  1182. } ddef
  1183. /_lp /none ddef
  1184. } def
  1185. /K                    % cyan magenta yellow black K -
  1186. {
  1187. _cs astore pop
  1188. /_sc
  1189. {
  1190. _lp /stroke ne
  1191.     {
  1192.     _os setoverprint
  1193.     _cs aload pop setcmykcolor
  1194.     /_lp /stroke ddef
  1195.     } if
  1196. } ddef
  1197. /_ps
  1198. {
  1199. _sc
  1200. stroke
  1201. } ddef
  1202. /_pss
  1203. {
  1204. _sc
  1205. ss
  1206. } ddef
  1207. /_pjss
  1208. {
  1209. _sc
  1210. jss
  1211. } ddef
  1212. /_lp /none ddef
  1213. } def
  1214. /x                    % cyan magenta yellow black name gray x -
  1215. {
  1216. /_gf exch ddef
  1217. findcmykcustomcolor
  1218. /_if exch ddef
  1219. /_fc
  1220. _lp /fill ne
  1221.     {
  1222.     _of setoverprint
  1223.     _if _gf 1 exch sub setcustomcolor
  1224.     /_lp /fill ddef
  1225.     } if
  1226. } ddef
  1227. /_pf
  1228. {
  1229. _fc
  1230. fill
  1231. } ddef
  1232. /_psf
  1233. {
  1234. _fc
  1235. ashow
  1236. } ddef
  1237. /_pjsf
  1238. {
  1239. _fc
  1240. awidthshow
  1241. } ddef
  1242. /_lp /none ddef
  1243. } def
  1244. /X                    % cyan magenta yellow black name gray X -
  1245. {
  1246. /_gs exch ddef
  1247. findcmykcustomcolor
  1248. /_is exch ddef
  1249. /_sc
  1250. {
  1251. _lp /stroke ne
  1252.     {
  1253.     _os setoverprint
  1254.     _is _gs 1 exch sub setcustomcolor
  1255.     /_lp /stroke ddef
  1256.     } if
  1257. } ddef
  1258. /_ps
  1259. {
  1260. _sc
  1261. stroke
  1262. } ddef
  1263. /_pss
  1264. {
  1265. _sc
  1266. ss
  1267. } ddef
  1268. /_pjss
  1269. {
  1270. _sc
  1271. jss
  1272. } ddef
  1273. /_lp /none ddef
  1274. } def
  1275. % locked object operator
  1276. /A                    % value A -
  1277. {
  1278. pop
  1279. } def
  1280. currentdict readonly pop end
  1281. setpacking
  1282. % annotate page operator
  1283. /annotatepage
  1284. {
  1285. } def
  1286. %%EndResource
  1287. %%EndProlog
  1288.